<!DOCTYPE html>
<html lang="zh-cn" data-darkreader-mode="dynamic" data-darkreader-scheme="dark" style="--olcb-folder-code-block-max-height: 80vh; --cnb-code-bg: rgb(21, 22, 23); --cnb-code-font-size: 12px; --cnb-code-color: rgb(132, 128, 122); --darkreader-bg--cnb-code-bg: #0c0d0d; --darkreader-text--cnb-code-color: #6a645a;"><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"><style class="darkreader darkreader--fallback" media="screen"></style><style class="darkreader darkreader--text" media="screen"></style><style class="darkreader darkreader--invert" media="screen">.jfk-bubble.gtx-bubble, .captcheck_answer_label > input + img, span#closed_text > img[src^="https://www.gstatic.com/images/branding/googlelogo"], span[data-href^="https://www.hcaptcha.com/"] > #icon, ::-webkit-calendar-picker-indicator, img.Wirisformula {
    filter: invert(100%) hue-rotate(180deg) brightness(70%) contrast(90%) !important;
}</style><style class="darkreader darkreader--inline" media="screen">[data-darkreader-inline-bgcolor] {
  background-color: var(--darkreader-inline-bgcolor) !important;
}
[data-darkreader-inline-bgimage] {
  background-image: var(--darkreader-inline-bgimage) !important;
}
[data-darkreader-inline-border] {
  border-color: var(--darkreader-inline-border) !important;
}
[data-darkreader-inline-border-bottom] {
  border-bottom-color: var(--darkreader-inline-border-bottom) !important;
}
[data-darkreader-inline-border-left] {
  border-left-color: var(--darkreader-inline-border-left) !important;
}
[data-darkreader-inline-border-right] {
  border-right-color: var(--darkreader-inline-border-right) !important;
}
[data-darkreader-inline-border-top] {
  border-top-color: var(--darkreader-inline-border-top) !important;
}
[data-darkreader-inline-boxshadow] {
  box-shadow: var(--darkreader-inline-boxshadow) !important;
}
[data-darkreader-inline-color] {
  color: var(--darkreader-inline-color) !important;
}
[data-darkreader-inline-fill] {
  fill: var(--darkreader-inline-fill) !important;
}
[data-darkreader-inline-stroke] {
  stroke: var(--darkreader-inline-stroke) !important;
}
[data-darkreader-inline-outline] {
  outline-color: var(--darkreader-inline-outline) !important;
}
[data-darkreader-inline-stopcolor] {
  stop-color: var(--darkreader-inline-stopcolor) !important;
}
[data-darkreader-inline-bg] {
  background: var(--darkreader-inline-bg) !important;
}
[data-darkreader-inline-invert] {
    filter: invert(100%) hue-rotate(180deg);
}</style><style class="darkreader darkreader--variables" media="screen">:root {
   --darkreader-neutral-background: #0d0f0f;
   --darkreader-neutral-text: #979491;
   --darkreader-selection-background: #003677;
   --darkreader-selection-text: #a2a19f;
}</style><style class="darkreader darkreader--root-vars" media="screen"></style><style class="darkreader darkreader--user-agent" media="screen">@layer {
html {
    background-color: #111213 !important;
}
html {
    color-scheme: dark !important;
}
iframe {
    color-scheme: initial;
}
html, body {
    background-color: #111213;
}
html, body {
    border-color: #514b42;
    color: #a2a19f;
}
a {
    color: #2466b3;
}
table {
    border-color: #3b4042;
}
mark {
    color: #a2a19f;
}
::placeholder {
    color: #7d7871;
}
input:-webkit-autofill,
textarea:-webkit-autofill,
select:-webkit-autofill {
    background-color: #2d3000 !important;
    color: #a2a19f !important;
}
::-webkit-scrollbar {
    background-color: #161919;
    color: #78736b;
}
::-webkit-scrollbar-thumb {
    background-color: #303436;
}
::-webkit-scrollbar-thumb:hover {
    background-color: #3d4245;
}
::-webkit-scrollbar-thumb:active {
    background-color: #323739;
}
::-webkit-scrollbar-corner {
    background-color: #111213;
}
* {
    scrollbar-color: #303436 #161919;
}
::selection {
    background-color: #003677 !important;
    color: #a2a19f !important;
}
::-moz-selection {
    background-color: #003677 !important;
    color: #a2a19f !important;
}
}</style>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="referrer" content="never">
    <meta name="keywords" content="cocos2d-x 2.1">
    <meta name="description" content="Zinnia库及其实现方法研究 （转）
zinnia是一个开源的手写识别库。采用C++实现。具有手写识别，学习以及文字模型数据制作转换等功能。 项目地址 [http://zinnia.sourceforge.net ] License： NewBSD 作者对SVM很有研究. 比同类程序的效率要高效.">
    <meta property="og:description" content="Zinnia库及其实现方法研究 （转）
zinnia是一个开源的手写识别库。采用C++实现。具有手写识别，学习以及文字模型数据制作转换等功能。 项目地址 [http://zinnia.sourceforge.net ] License： NewBSD 作者对SVM很有研究. 比同类程序的效率要高效.">
    <meta http-equiv="Cache-Control" content="no-transform">
    <meta http-equiv="Cache-Control" content="no-siteapp">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>(手写识别) Zinnia库及其实现方法研究 - Flex/AS Programmer - 博客园</title>
    <link rel="canonical" href="https://www.cnblogs.com/yssgyw/p/3456121.html">
    <link rel="shortcut icon" id="favicon" href="https://assets.cnblogs.com/favicon.svg?v=2" type="image/svg+xml">
    
    <style>#home :not(.cnblogs_code):not(.cnblogs_Highlighter)>pre:not([highlighted]):not([class*="brush:"]) code:not(.hljs), :not(.cnblogs_code):not(.cnblogs_Highlighter)>pre:not([highlighted]):not([class*="brush:"]) code:not(.hljs) {background: rgb(21, 22, 23);
        padding: 12px;
        border: 1px solid rgb(43, 48, 49);
        border-radius: 3px;
        border-color: transparent;
        color: rgb(132, 128, 122);
        font-family: "Courier New", sans-serif;
        font-size: 12px</style><style class="darkreader darkreader--sync" media="screen"></style><link rel="stylesheet" href="(%E6%89%8B%E5%86%99%E8%AF%86%E5%88%AB)%20Zinnia%E5%BA%93%E5%8F%8A%E5%85%B6%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%B3%95%E7%A0%94%E7%A9%B6%20-%20Flex_AS%20Programmer%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/blog-common.min.css"><style class="darkreader darkreader--sync" media="screen"></style>
    

    <link id="MainCss" rel="stylesheet" href="(%E6%89%8B%E5%86%99%E8%AF%86%E5%88%AB)%20Zinnia%E5%BA%93%E5%8F%8A%E5%85%B6%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%B3%95%E7%A0%94%E7%A9%B6%20-%20Flex_AS%20Programmer%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/bundle-bluecurve.min.css"><style class="darkreader darkreader--sync" media="screen"></style>
        <link id="highlighter-theme-cnblogs" type="text/css" rel="stylesheet" href="(%E6%89%8B%E5%86%99%E8%AF%86%E5%88%AB)%20Zinnia%E5%BA%93%E5%8F%8A%E5%85%B6%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%B3%95%E7%A0%94%E7%A9%B6%20-%20Flex_AS%20Programmer%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/cnblogs.css"><style class="darkreader darkreader--sync" media="screen"></style>
    
    
    <link id="mobile-style" media="only screen and (max-width: 767px)" type="text/css" rel="stylesheet" href="(%E6%89%8B%E5%86%99%E8%AF%86%E5%88%AB)%20Zinnia%E5%BA%93%E5%8F%8A%E5%85%B6%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%B3%95%E7%A0%94%E7%A9%B6%20-%20Flex_AS%20Programmer%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/bundle-bluecurve-mobile.min.css"><style class="darkreader darkreader--sync" media="screen"></style>
    
    <link type="application/rss+xml" rel="alternate" href="https://www.cnblogs.com/yssgyw/rss">
    <link type="application/rsd+xml" rel="EditURI" href="https://www.cnblogs.com/yssgyw/rsd.xml">
    <link type="application/wlwmanifest+xml" rel="wlwmanifest" href="https://www.cnblogs.com/yssgyw/wlwmanifest.xml">
    <script>
        var currentBlogId = 107735;
        var currentBlogApp = 'yssgyw';
        var isLogined = false;
        var isBlogOwner = false;
        var skinName = 'BlueCurve';
        var visitorUserId = '';
        var hasCustomScript = false;
        window.cb_enable_mathjax = false;
        window.mathEngine = 0;
        window.codeHighlightEngine = 1;
        window.enableCodeLineNumber = false;
        window.codeHighlightTheme = 'cnblogs';
        window.darkModeCodeHighlightTheme = 'vs2015';
        window.isDarkCodeHighlightTheme = false;
        window.isDarkModeCodeHighlightThemeDark = true;
        window.isDisableCodeHighlighter = false;
        window.enableCodeThemeTypeFollowSystem = false;
        window.enableMacStyleCodeBlock = false;
    </script><meta name="darkreader" content="6504af0ae342473887ab176d6ca4d7f8"><style class="darkreader darkreader--override" media="screen">.vimvixen-hint {
    background-color: #563a00 !important;
    border-color: #977b0d !important;
    color: #aaa28c !important;
}
#vimvixen-console-frame {
    color-scheme: light !important;
}
::placeholder {
    opacity: 0.5 !important;
}
#edge-translate-panel-body,
.MuiTypography-body1,
.nfe-quote-text {
    color: var(--darkreader-neutral-text) !important;
}
gr-main-header {
    background-color: #0b2932 !important;
}
.tou-z65h9k,
.tou-mignzq,
.tou-1b6i2ox,
.tou-lnqlqk {
    background-color: var(--darkreader-neutral-background) !important;
}
.tou-75mvi {
    background-color: #02161d !important;
}
.tou-ta9e87,
.tou-1w3fhi0,
.tou-1b8t2us,
.tou-py7lfi,
.tou-1lpmd9d,
.tou-1frrtv8,
.tou-17ezmgn {
    background-color: #070707 !important;
}
.tou-uknfeu {
    background-color: #180f02 !important;
}
.tou-6i3zyv {
    background-color: #123d4c !important;
}
div.mermaid-viewer-control-panel .btn {
    background-color: var(--darkreader-neutral-background);
    fill: var(--darkreader-neutral-text);
}
svg g rect.er {
    fill: var(--darkreader-neutral-background) !important;
}
svg g rect.er.entityBox {
    fill: var(--darkreader-neutral-background) !important;
}
svg g rect.er.attributeBoxOdd {
    fill: var(--darkreader-neutral-background) !important;
}
svg g rect.er.attributeBoxEven {
    fill: var(--darkreader-selection-background);
    fill-opacity: 0.8 !important;
}
svg rect.er.relationshipLabelBox {
    fill: var(--darkreader-neutral-background) !important;
}
svg g g.nodes rect,
svg g g.nodes polygon {
    fill: var(--darkreader-neutral-background) !important;
}
svg g rect.task {
    fill: var(--darkreader-selection-background) !important;
}
svg line.messageLine0,
svg line.messageLine1 {
    stroke: var(--darkreader-neutral-text) !important;
}
div.mermaid .actor {
    fill: var(--darkreader-neutral-background) !important;
}
mitid-authenticators-code-app > .code-app-container {
    background-color: white !important;
    padding-top: 1rem;
}
iframe#unpaywall[src$="unpaywall.html"] {
    color-scheme: light !important;
}
embed[type="application/pdf"] { filter: invert(100%) contrast(90%); }</style>
        <script>
            window.currentPostId = 3456121;
            window.currentPostDateAdded = '2013-12-03 17:11';
        </script>
    <script src="(%E6%89%8B%E5%86%99%E8%AF%86%E5%88%AB)%20Zinnia%E5%BA%93%E5%8F%8A%E5%85%B6%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%B3%95%E7%A0%94%E7%A9%B6%20-%20Flex_AS%20Programmer%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/jquery-3.3.1.min.js"></script>
    <script src="(%E6%89%8B%E5%86%99%E8%AF%86%E5%88%AB)%20Zinnia%E5%BA%93%E5%8F%8A%E5%85%B6%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%B3%95%E7%A0%94%E7%A9%B6%20-%20Flex_AS%20Programmer%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/blog-common.min.js"></script><style>.medium-zoom-overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  opacity: 0;
  transition: opacity 300ms;
  will-change: opacity;
}

.medium-zoom--opened .medium-zoom-overlay {
  cursor: pointer;
  cursor: zoom-out;
  opacity: 1;
}

.medium-zoom-image {
  cursor: pointer;
  cursor: zoom-in;
  /*
    The `transition` is marked as "!important" for the animation to happen
    even though it's overriden by another inline `transition` style attribute.

    This is problematic with frameworks that generate inline styles on their
    images (e.g. Gatsby).

    See https://github.com/francoischalifour/medium-zoom/issues/110
   */
  transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) !important;
}

.medium-zoom-image--hidden {
  visibility: hidden;
}

.medium-zoom-image--opened {
  position: relative;
  cursor: pointer;
  cursor: zoom-out;
  will-change: transform;
}
</style><style class="darkreader darkreader--sync" media="screen"></style><script id="hljs-script" src="(%E6%89%8B%E5%86%99%E8%AF%86%E5%88%AB)%20Zinnia%E5%BA%93%E5%8F%8A%E5%85%B6%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%B3%95%E7%A0%94%E7%A9%B6%20-%20Flex_AS%20Programmer%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/highlight.min.js" type="text/javascript" async=""></script>
    
<meta property="og:image" content="http://hiphotos.baidu.com/312611432belial/pic/item/ab921527675dfd7f8b82a12c.jpg"></head>
<body class="skin-bluecurve has-navbar has-bannerbar">
    <a name="top"></a>
        <a href="https://www.cnblogs.com/cmt/p/18298240" onclick="countCreativeClicks('C0-vivo-蓝河技术沙龙')" target="_blank" rel="nofollow">
            <div class="bannerbar forpc" style="background-size: contain;background-image: url(https://img2024.cnblogs.com/blog/35695/202407/35695-20240713065703506-1612656754.jpg);">
                <img src="(%E6%89%8B%E5%86%99%E8%AF%86%E5%88%AB)%20Zinnia%E5%BA%93%E5%8F%8A%E5%85%B6%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%B3%95%E7%A0%94%E7%A9%B6%20-%20Flex_AS%20Programmer%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/35695-20240713065543687-106657163.jpg" style="" onload="countCreativeImpressions('C0-vivo-蓝河技术沙龙')">
                
                
                <span id="c0_impression" style="display:none"></span>
            </div>
        </a>
        <div id="bannerbar" class="bannerbar-mobile bannerbar-text-mobile formobile">
                <a href="https://www.cnblogs.com/cmt/p/18298240" onclick="countCreativeClicks('M2-vivo-蓝河技术沙龙')" rel="nofollow">
                    <img src="(%E6%89%8B%E5%86%99%E8%AF%86%E5%88%AB)%20Zinnia%E5%BA%93%E5%8F%8A%E5%85%B6%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%B3%95%E7%A0%94%E7%A9%B6%20-%20Flex_AS%20Programmer%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/35695-20240713070140969-2093504952.jpg" alt="" onload="countCreativeImpressionsOnMobile('M2-vivo-蓝河技术沙龙')">
                    <span id="m2_impression" style="display:none"></span>
                </a>
        </div>
    <div id="top_nav" class="navbar forpc">
        <nav id="nav_main" class="navbar-main">
            <ul id="nav_left" class="navbar-list navbar-left">
                <li class="navbar-branding">
                    <a href="https://www.cnblogs.com/" title="开发者的网上家园" role="banner">
                        <img src="(%E6%89%8B%E5%86%99%E8%AF%86%E5%88%AB)%20Zinnia%E5%BA%93%E5%8F%8A%E5%85%B6%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%B3%95%E7%A0%94%E7%A9%B6%20-%20Flex_AS%20Programmer%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/logo.svg" alt="博客园Logo">
                    </a>
                </li>
                <li><a href="https://cnblogs.vip/">会员</a></li>
                <li><a href="https://cnblogs.vip/store">周边</a></li>
                <li><a href="https://www.cnblogs.com/cmt/articles/18197617">众包</a></li>
                <li>
                    <a href="https://news.cnblogs.com/" onclick="countClicks('nav', 'skin-navbar-news')">新闻</a>
                </li>
                <li>
                    <a href="https://q.cnblogs.com/" onclick="countClicks('nav', 'skin-navbar-q')">博问</a>
                </li>
                <li>
                    <a href="https://ing.cnblogs.com/" onclick="countClicks('nav', 'skin-navbar-ing')">闪存</a>
                </li>
            </ul>
            <ul id="nav_right" class="navbar-list navbar-right">
                <li>
                    <form id="zzk_search" class="navbar-search dropdown" action="https://zzk.cnblogs.com/s" method="get" role="search">
                        <input name="w" id="zzk_search_input" placeholder="代码改变世界" type="search" tabindex="3" autocomplete="off">
                        <button id="zzk_search_button" onclick="window.navbarSearchManager.triggerActiveOption()">
                            <img id="search_icon" class="focus-hidden" src="(%E6%89%8B%E5%86%99%E8%AF%86%E5%88%AB)%20Zinnia%E5%BA%93%E5%8F%8A%E5%85%B6%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%B3%95%E7%A0%94%E7%A9%B6%20-%20Flex_AS%20Programmer%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/search.svg" alt="搜索">
                            <img class="hidden focus-visible" src="(%E6%89%8B%E5%86%99%E8%AF%86%E5%88%AB)%20Zinnia%E5%BA%93%E5%8F%8A%E5%85%B6%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%B3%95%E7%A0%94%E7%A9%B6%20-%20Flex_AS%20Programmer%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/enter.svg" alt="搜索">
                        </button>
                        <ul id="navbar_search_options" class="dropdown-menu quick-search-menu">
                            <li tabindex="0" class="active" onclick="zzkSearch(event, document.getElementById('zzk_search_input').value)">
                                <div class="keyword-wrapper">
                                    <img src="(%E6%89%8B%E5%86%99%E8%AF%86%E5%88%AB)%20Zinnia%E5%BA%93%E5%8F%8A%E5%85%B6%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%B3%95%E7%A0%94%E7%A9%B6%20-%20Flex_AS%20Programmer%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/search.svg" alt="搜索">
                                    <div class="keyword"></div>
                                </div>
                                <span class="search-area">所有博客</span>
                            </li>
                                    <li tabindex="1" onclick="zzkBlogSearch(event, 'yssgyw', document.getElementById('zzk_search_input').value)">
                                        <div class="keyword-wrapper">
                                            <img src="(%E6%89%8B%E5%86%99%E8%AF%86%E5%88%AB)%20Zinnia%E5%BA%93%E5%8F%8A%E5%85%B6%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%B3%95%E7%A0%94%E7%A9%B6%20-%20Flex_AS%20Programmer%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/search.svg" alt="搜索">
                                            <div class="keyword"></div>
                                        </div>
                                        <span class="search-area">当前博客</span>
                                    </li>
                        </ul>
                    </form>
                </li>
                <li id="navbar_login_status" class="navbar-list">
                    <a class="navbar-user-info navbar-blog" href="https://i.cnblogs.com/EditPosts.aspx?opt=1" alt="写随笔" title="写随笔" style="display: none;">
                        <img id="new_post_icon" class="navbar-icon" src="(%E6%89%8B%E5%86%99%E8%AF%86%E5%88%AB)%20Zinnia%E5%BA%93%E5%8F%8A%E5%85%B6%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%B3%95%E7%A0%94%E7%A9%B6%20-%20Flex_AS%20Programmer%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/newpost.svg" alt="写随笔">
                    </a>
                    <a id="navblog-myblog-icon" class="navbar-user-info navbar-blog" href="https://passport.cnblogs.com/GetBlogApplyStatus.aspx" alt="我的博客" title="我的博客" style="display: none;">
                        <img id="myblog_icon" class="navbar-icon" src="(%E6%89%8B%E5%86%99%E8%AF%86%E5%88%AB)%20Zinnia%E5%BA%93%E5%8F%8A%E5%85%B6%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%B3%95%E7%A0%94%E7%A9%B6%20-%20Flex_AS%20Programmer%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/myblog.svg" alt="我的博客">
                    </a>
                    <a class="navbar-user-info navbar-message navbar-icon-wrapper" href="https://msg.cnblogs.com/" alt="短消息" title="短消息" style="display: none;">
                        <img id="msg_icon" class="navbar-icon" src="(%E6%89%8B%E5%86%99%E8%AF%86%E5%88%AB)%20Zinnia%E5%BA%93%E5%8F%8A%E5%85%B6%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%B3%95%E7%A0%94%E7%A9%B6%20-%20Flex_AS%20Programmer%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/message.svg" alt="短消息">
                        <span id="msg_count" style="display: none"></span>
                    </a>
                    <a id="navbar_lite_mode_indicator" data-current-page="blog" style="display: none" href="javascript:void(0)" alt="简洁模式" title="简洁模式启用，您在访问他人博客时会使用简洁款皮肤展示">
                        <img class="navbar-icon" src="(%E6%89%8B%E5%86%99%E8%AF%86%E5%88%AB)%20Zinnia%E5%BA%93%E5%8F%8A%E5%85%B6%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%B3%95%E7%A0%94%E7%A9%B6%20-%20Flex_AS%20Programmer%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/lite-mode-on.svg" alt="简洁模式">
                    </a>
                    <div id="user_info" class="navbar-user-info dropdown" style="display: none;">
                        <a class="dropdown-button" href="https://home.cnblogs.com/">
                            <img id="user_icon" class="navbar-avatar" src="(%E6%89%8B%E5%86%99%E8%AF%86%E5%88%AB)%20Zinnia%E5%BA%93%E5%8F%8A%E5%85%B6%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%B3%95%E7%A0%94%E7%A9%B6%20-%20Flex_AS%20Programmer%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/avatar-default.svg" alt="用户头像">
                        </a>
                        <div class="dropdown-menu">
                            <a id="navblog-myblog-text" href="https://passport.cnblogs.com/GetBlogApplyStatus.aspx">我的博客</a>
                            <a href="https://home.cnblogs.com/">我的园子</a>
                            <a href="https://account.cnblogs.com/settings/account">账号设置</a>
                            <a href="javascript:void(0)" id="navbar_lite_mode_toggle" title="简洁模式会使用简洁款皮肤显示所有博客">
    简洁模式 <img id="navbar_lite_mode_on" src="(%E6%89%8B%E5%86%99%E8%AF%86%E5%88%AB)%20Zinnia%E5%BA%93%E5%8F%8A%E5%85%B6%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%B3%95%E7%A0%94%E7%A9%B6%20-%20Flex_AS%20Programmer%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/lite-mode-check.svg" class="hide" style="display: none;"><span id="navbar_lite_mode_spinner" class="hide">...</span>
</a>
                            <a href="javascript:void(0)" onclick="account.logout();">退出登录</a>
                        </div>
                    </div>
                    <a class="navbar-anonymous" href="https://account.cnblogs.com/signup" style="display: inline;">注册</a>
                    <a class="navbar-anonymous" href="javascript:void(0);" onclick="account.login()" style="display: inline;">登录</a>
                </li>
            </ul>
        </nav>
    </div>

    

    <div id="container">
	<!-- Header -->
  <div id="banner">
    <h1><a id="Header1_HeaderTitle" class="headermaintitle HeaderMainTitle" href="https://www.cnblogs.com/yssgyw">Flex Programmer</a>
</h1><br><br>
    <h1></h1>
  </div>


	
 <div id="nav-main" align="center">   
    <ul>
	<li><a id="blog_nav_sitehome" class="menu" href="https://www.cnblogs.com/">
博客园</a>
</li>
	<li>
<a id="blog_nav_myhome" class="menu" href="https://www.cnblogs.com/yssgyw/">
首页</a>
</li>
	<li>

<a id="blog_nav_newpost" class="menu" href="https://i.cnblogs.com/EditPosts.aspx?opt=1">
新随笔</a>
</li>
	<li>
<a id="blog_nav_contact" class="menu" href="https://msg.cnblogs.com/send/Flex%2FAS%20Programmer">
联系</a></li>
	<li>
<a id="blog_nav_rss" class="menu" href="javascript:void(0)" data-rss="https://www.cnblogs.com/yssgyw/rss/">
订阅</a></li>
	<li>
<a id="blog_nav_admin" class="menu" href="https://i.cnblogs.com/">
管理</a>
</li>
    </ul>
   </div>



    <div id="main">
        <!-- Left Sidebar -->
        <div id="leftsidebar">
            <div id="nav-supp">
                <div id="sidebar_news" class="newsItem">
    <h3>公告</h3>
<div id="blog-news">    
    <div id="sidebar_news_content">
<div id="profile_block">
    昵称：
    <a href="https://home.cnblogs.com/u/yssgyw/">
        Flex/AS Programmer
    </a>
    <br>
    园龄：
    <a href="https://home.cnblogs.com/u/yssgyw/" title="入园时间：2012-02-03">
        12年5个月
    </a>
    <br>
    粉丝：
    <a class="follower-count" href="https://home.cnblogs.com/u/yssgyw/followers/">
        3
    </a>
    <br>
    关注：
    <a class="folowing-count" href="https://home.cnblogs.com/u/yssgyw/followees/">
        1
    </a>
    <div id="p_b_follow" class="follow-tip">
<a href="javascript:void(0)" onclick="follow('bc1a715b-1a4e-e111-aa3f-842b2b196315')">+加关注</a></div>
    <script>getFollowStatus('bc1a715b-1a4e-e111-aa3f-842b2b196315');</script>
</div>
</div>
</div>
<script>loadBlogNews();</script>

 
</div>
<div id="sidebar_c3"></div>
                <div id="blog-sidecolumn"><!-- 搜索 -->
<div id="sidebar_search" class="sidebar-block">
    <div class="mySearch my-search">
        <h3 class="catListTitle">搜索</h3>
        <div id="sidebar_search_box">
            <div id="widget_my_zzk" class="div_my_zzk">
                <input type="text" id="q" onkeydown="return zzk_go_enter(event);" class="input_my_zzk">&nbsp;<input onclick="zzk_go()" type="button" value="找找看" id="btnZzk" class="btn_my_zzk">
            </div>
            
        </div>
    </div>
</div>

<!-- 常用链接 -->
<div id="sidebar_shortcut" class="sidebar-block">
<h3 class="catListTitle">
常用链接
</h3>
<ul>
    <li><a href="https://www.cnblogs.com/yssgyw/p/" title="我的博客的随笔列表">我的随笔</a></li>
<li><a href="https://www.cnblogs.com/yssgyw/MyComments.html" title="我的发表过的评论列表">我的评论</a></li>
<li><a href="https://www.cnblogs.com/yssgyw/OtherPosts.html" title="我评论过的随笔列表">我的参与</a></li>
<li><a href="https://www.cnblogs.com/yssgyw/comments" title="我的博客的评论列表">最新评论</a></li>
<li><a href="https://www.cnblogs.com/yssgyw/tag/" title="我的博客的标签列表">我的标签</a></li>

</ul>
</div>

<!-- 最新随笔 -->


<!-- 我的标签 -->
<div id="sidebar_toptags" class="sidebar-block"><h3><a href="https://www.cnblogs.com/yssgyw/tag/" class="sidebar-card-title-a">我的标签</a></h3>
<div id="MyTag">
    <ul>
                <li>
            <a href="https://www.cnblogs.com/yssgyw/tag/Flex%20Builder%20%E6%8F%92%E4%BB%B6/">Flex Builder 插件<span class="tag-count">(1)</span></a>
        </li>
        <li>
            <a href="https://www.cnblogs.com/yssgyw/tag/Flex%20Builder%204.5%E6%8F%92%E4%BB%B6/">Flex Builder 4.5插件<span class="tag-count">(1)</span></a>
        </li>
        <li>
            <a href="https://www.cnblogs.com/yssgyw/tag/Flash%20runtimes/">Flash runtimes<span class="tag-count">(1)</span></a>
        </li>
    

    </ul>
</div>
</div>

<!-- 积分与排名 -->


<!-- 随笔分类、随笔档案、文章分类、新闻分类、相册、链接 -->
<div id="sidebar_categories">

    <h3>
        
    <a class="sidebar-card-title-a" href="https://www.cnblogs.com/yssgyw/post-categories">随笔分类</a>



    </h3>
    <ul>
            <li data-category-list-item-visible="true" style="display: block">
                
<a href="https://www.cnblogs.com/yssgyw/category/373128.html" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">ActionScript3.0(2)</a>
 
            </li>            
            <li data-category-list-item-visible="true" style="display: block">
                
<a href="https://www.cnblogs.com/yssgyw/category/541315.html" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">Android(16)</a>
 
            </li>            
            <li data-category-list-item-visible="true" style="display: block">
                
<a href="https://www.cnblogs.com/yssgyw/category/500454.html" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">C++学习(20)</a>
 
            </li>            
            <li data-category-list-item-visible="true" style="display: block">
                
<a href="https://www.cnblogs.com/yssgyw/category/500421.html" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">cocos2d-x 2.1(94)</a>
 
            </li>            
            <li data-category-list-item-visible="true" style="display: block">
                
<a href="https://www.cnblogs.com/yssgyw/category/504930.html" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">Cocos2dx之动作/动画专题(6)</a>
 
            </li>            
            <li data-category-list-item-visible="true" style="display: block">
                
<a href="https://www.cnblogs.com/yssgyw/category/534214.html" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">cocos2dx之粒子效果专题(1)</a>
 
            </li>            
            <li data-category-list-item-visible="true" style="display: block">
                
<a href="https://www.cnblogs.com/yssgyw/category/547319.html" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">Eclipse(3)</a>
 
            </li>            
            <li data-category-list-item-visible="true" style="display: block">
                
<a href="https://www.cnblogs.com/yssgyw/category/512492.html" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">Github(1)</a>
 
            </li>            
            <li data-category-list-item-visible="true" style="display: block">
                
<a href="https://www.cnblogs.com/yssgyw/category/474001.html" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">IOS(21)</a>
 
            </li>            
            <li data-category-list-item-visible="true" style="display: block">
                
<a href="https://www.cnblogs.com/yssgyw/category/533957.html" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">Mac(4)</a>
 
            </li>            
            <li data-category-list-item-visible="true" style="display: block">
                
<a href="https://www.cnblogs.com/yssgyw/category/474000.html" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">NLP(1)</a>
 
            </li>            
            <li data-category-list-item-visible="true" style="display: block">
                
<a href="https://www.cnblogs.com/yssgyw/category/509880.html" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">other(5)</a>
 
            </li>            
            <li data-category-list-item-visible="true" style="display: block">
                
<a href="https://www.cnblogs.com/yssgyw/category/541463.html" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">Xcode(1)</a>
 
            </li>            
            <li data-category-list-item-visible="true" style="display: block">
                
<a href="https://www.cnblogs.com/yssgyw/category/507423.html" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">李开复博文(5)</a>
 
            </li>            
            <li data-category-list-item-visible="true" style="display: block">
                
<a href="https://www.cnblogs.com/yssgyw/category/508163.html" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">美文(2)</a>
 
            </li>            
            <li data-category-list-item-visible="false" style="display: none">
                
<a href="https://www.cnblogs.com/yssgyw/category/533958.html" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">杂记(10)</a>
 
            </li>            
        <li><a href="javascript:void(0)" onclick="sideColumnManager.loadMore(this)">更多</a></li>
    </ul>
    <h3>
        
随笔档案


    </h3>
    <ul>
            <li data-category-list-item-visible="true" style="display: block">
                
<a href="https://www.cnblogs.com/yssgyw/p/archive/2014/11" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">2014年11月(1)</a>
 
            </li>            
            <li data-category-list-item-visible="true" style="display: block">
                
<a href="https://www.cnblogs.com/yssgyw/p/archive/2014/04" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">2014年4月(3)</a>
 
            </li>            
            <li data-category-list-item-visible="true" style="display: block">
                
<a href="https://www.cnblogs.com/yssgyw/p/archive/2014/03" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">2014年3月(1)</a>
 
            </li>            
            <li data-category-list-item-visible="true" style="display: block">
                
<a href="https://www.cnblogs.com/yssgyw/p/archive/2014/02" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">2014年2月(4)</a>
 
            </li>            
            <li data-category-list-item-visible="true" style="display: block">
                
<a href="https://www.cnblogs.com/yssgyw/p/archive/2014/01" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">2014年1月(21)</a>
 
            </li>            
            <li data-category-list-item-visible="true" style="display: block">
                
<a href="https://www.cnblogs.com/yssgyw/p/archive/2013/12" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">2013年12月(47)</a>
 
            </li>            
            <li data-category-list-item-visible="true" style="display: block">
                
<a href="https://www.cnblogs.com/yssgyw/p/archive/2013/11" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">2013年11月(71)</a>
 
            </li>            
            <li data-category-list-item-visible="true" style="display: block">
                
<a href="https://www.cnblogs.com/yssgyw/p/archive/2013/10" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">2013年10月(4)</a>
 
            </li>            
            <li data-category-list-item-visible="true" style="display: block">
                
<a href="https://www.cnblogs.com/yssgyw/p/archive/2013/09" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">2013年9月(58)</a>
 
            </li>            
            <li data-category-list-item-visible="true" style="display: block">
                
<a href="https://www.cnblogs.com/yssgyw/p/archive/2013/08" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">2013年8月(64)</a>
 
            </li>            
            <li data-category-list-item-visible="true" style="display: block">
                
<a href="https://www.cnblogs.com/yssgyw/p/archive/2013/07" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">2013年7月(4)</a>
 
            </li>            
            <li data-category-list-item-visible="true" style="display: block">
                
<a href="https://www.cnblogs.com/yssgyw/p/archive/2013/04" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">2013年4月(1)</a>
 
            </li>            
            <li data-category-list-item-visible="true" style="display: block">
                
<a href="https://www.cnblogs.com/yssgyw/p/archive/2013/01" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">2013年1月(1)</a>
 
            </li>            
            <li data-category-list-item-visible="true" style="display: block">
                
<a href="https://www.cnblogs.com/yssgyw/p/archive/2012/05" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">2012年5月(1)</a>
 
            </li>            
            <li data-category-list-item-visible="true" style="display: block">
                
<a href="https://www.cnblogs.com/yssgyw/p/archive/2012/02" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">2012年2月(2)</a>
 
            </li>            
        
    </ul>
    <h3>
        
    <a class="sidebar-card-title-a" href="https://www.cnblogs.com/yssgyw/article-categories">文章分类</a>



    </h3>
    <ul>
            <li data-category-list-item-visible="true" style="display: block">
                
<a href="https://www.cnblogs.com/yssgyw/category/354739.html" style="--cnb-category-item-link-indent-size: calc(0 * 1em)" class="category-item-link" rel="" target="">Flex Builder插件(2)</a>
 
            </li>            
        
    </ul>
</div>

<!-- 最新评论 -->
<!-- 阅读排行榜 -->
<div id="sidebar_topviewedposts" class="sidebar-block"><h3>
    <a href="https://www.cnblogs.com/yssgyw/most-viewed" class="sidebar-card-title-a">
    阅读排行榜
</a>

</h3>
<div class="RecentComment">
    <div id="TopViewPostsBlock">
        <ul style="word-break:break-all">
                    <li>
                        <a href="https://www.cnblogs.com/yssgyw/p/3280975.html">
                            1. 台湾书籍代购网址——2013-08-25 16(13353)
                        </a>
                    </li>
                    <li>
                        <a href="https://www.cnblogs.com/yssgyw/p/3428811.html">
                            2. Mac OS X 10.7下找不到~/Library/Application Support的解决方案(3873)
                        </a>
                    </li>
                    <li>
                        <a href="https://www.cnblogs.com/yssgyw/p/3663695.html">
                            3. SVN 修改URL路径(3803)
                        </a>
                    </li>
                    <li>
                        <a href="https://www.cnblogs.com/yssgyw/p/3511802.html">
                            4.  error “base class has incomplete type”(3665)
                        </a>
                    </li>
                    <li>
                        <a href="https://www.cnblogs.com/yssgyw/p/3513790.html">
                            5. 查看MAC系统JRE和JDK版本(3624)
                        </a>
                    </li>
        </ul>
    </div>
</div></div>

<!-- 评论排行榜 -->
<div id="sidebar_topcommentedposts" class="sidebar-block">
<h3>
    <a href="https://www.cnblogs.com/yssgyw/most-commented" class="sidebar-card-title-a">评论排行榜</a>

</h3>
<div class="RecentComment">
    <div id="TopFeedbackPostsBlock">
        <ul style="word-break:break-all">
                    <li>
                        <a href="https://www.cnblogs.com/yssgyw/p/3462464.html">
                            1. 【转】好的程序员做不出好的软件设计(1)
                        </a>
                    </li>
        </ul>
    </div>
</div></div>

<!-- 推荐排行榜 -->
<div id="sidebar_topdiggedposts" class="sidebar-block">
<div id="topdigg_posts_wrap">
    <div class="catListView">
        <h3 class="catListTitle">
            <a href="https://www.cnblogs.com/yssgyw/most-liked" class="sidebar-card-title-a">推荐排行榜</a>

        </h3>
        <div id="TopDiggPostsBlock">
            <ul style="word-break: break-all">
                        <li>
                            <a href="https://www.cnblogs.com/yssgyw/p/3663695.html">
                                1. SVN 修改URL路径(1)
                            </a>
                        </li>
                        <li>
                            <a href="https://www.cnblogs.com/yssgyw/p/3522432.html">
                                2. Microsoft Office Visio Professional 2007密钥(1)
                            </a>
                        </li>
            </ul>
        </div>
    </div>
</div></div><div id="sidebar_recentcomments" class="sidebar-block"><h3><a href="https://www.cnblogs.com/yssgyw/comments" class="sidebar-card-title-a">最新评论</a></h3>
<div class="RecentComment">
    <div class="RecentCommentBlock">
        <ul>
                            <li class="recent_comment_title"><a href="https://www.cnblogs.com/yssgyw/p/3462464.html">1. Re:【转】好的程序员做不出好的软件设计</a></li>
                            <li class="recent_comment_body">说的不错</li>
                            <li class="recent_comment_author">--briss</li>
        </ul>
    </div>
</div>

</div>


</div>
                <script>loadBlogSideColumn();</script>
            </div>
        </div>
        <!-- Main Content -->
        <div id="content"><a id="contentstart" name="contentstart"></a><div id="post_detail">
	<div class="post">
		<div class="posthead">
			<h2>
				<a id="cb_post_title_url" class="postTitle2 vertical-middle" href="https://www.cnblogs.com/yssgyw/p/3456121.html" title="发布于 2013-12-03 17:11">
    <span role="heading" aria-level="2">(手写识别) Zinnia库及其实现方法研究</span>
    

</a>

			</h2>
 			Posted on 
<span id="post-date" data-last-update-days="3877.7877436464883" data-date-created="BlogServer.Application.Dto.BlogPost.BlogPostDto" data-date-updated="2013-12-03 17:11" aria-expanded="false">2013-12-03 17:11</span>&nbsp;
<a href="https://www.cnblogs.com/yssgyw">Flex/AS Programmer</a>&nbsp;
阅读(<span id="post_view_count">1628</span>)&nbsp;
评论(<span id="post_comment_count">0</span>)&nbsp;
<a href="https://i.cnblogs.com/EditPosts.aspx?postid=3456121" rel="nofollow">编辑</a>&nbsp;
<a href="javascript:void(0)" onclick="AddToWz(3456121);return false;">收藏</a>&nbsp;
<a href="javascript:void(0)" onclick="reportManager.report({ currentUserId: '', targetType: 'blogPost', targetId: '3456121', targetLink: 'https://www.cnblogs.com/yssgyw/p/3456121.html', title: '(手写识别) Zinnia库及其实现方法研究' })">举报</a>

			
			
		</div>
		<div class="postbody"><div id="cnblogs_post_body" class="blogpost-body blogpost-body-html">
<p><span style="color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; --darkreader-inline-color: #84807a;" data-darkreader-inline-color="">Zinnia库及其实现方法研究 （转）</span></p>
<p style="margin: 0px; padding: 0px; color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; --darkreader-inline-color: #84807a;" data-darkreader-inline-color="">zinnia是一个开源的手写识别库。采用C++实现。具有手写识别，学习以及文字模型数据制作转换等功能。</p>
<ul style="color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; margin: 0px; padding: 0px; list-style: none; --darkreader-inline-color: #84807a;" data-darkreader-inline-color="">
  <li style="margin: 0; padding: 0">项目地址 [<a href="http://zinnia.sourceforge.net/" style="color: rgb(159, 159, 159); text-decoration: none; --darkreader-inline-color: #78736b;" rel="noopener" data-darkreader-inline-color="">http://zinnia.sourceforge.net</a> ]</li>

  <li style="margin: 0; padding: 0">License： <a href="http://www.opensource.org/licenses/bsd-license.php" style="color: rgb(159, 159, 159); text-decoration: none; --darkreader-inline-color: #78736b;" rel="noopener" data-darkreader-inline-color="">NewBSD</a></li>

  <li style="margin: 0; padding: 0">作者对SVM很有研究. 比同类程序的效率要高效.(同类项目如tegaki)</li>

  <li style="margin: 0; padding: 0">我的目的是通过这个研究简单的手写输入实现方法</li>
</ul><a name="WBheader_Zinnia库特点_" style="color: rgb(159, 159, 159); text-decoration: underline; font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; --darkreader-inline-color: #78736b;" rel="noopener" data-darkreader-inline-color=""></a><span style="color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; --darkreader-inline-color: #84807a;" data-darkreader-inline-color="">Zinnia库特点</span>
<ul style="color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; margin: 0px; padding: 0px; list-style: none; --darkreader-inline-color: #84807a;" data-darkreader-inline-color="">
  <li style="margin: 0; padding: 0">SVM机实现</li>

  <li style="margin: 0; padding: 0">轻量级，可移植</li>

  <li style="margin: 0; padding: 0">线程安全，可供C，C++，Perl，Python，Ruby调用</li>

  <li style="margin: 0; padding: 0">每秒50-100 char的认识速度</li>

  <li style="margin: 0; padding: 0">快速学习</li>
</ul>
<p style="margin: 0px; padding: 0px; color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; --darkreader-inline-color: #84807a;" data-darkreader-inline-color="">以下为通过源代码研究和debug得出的结论。</p>
<p style="margin: 0px; padding: 0px; color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; --darkreader-inline-color: #84807a;" data-darkreader-inline-color="">可能不是完全准确</p><a name="WBheader_接口_" style="color: rgb(159, 159, 159); text-decoration: underline; font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; --darkreader-inline-color: #78736b;" rel="noopener" data-darkreader-inline-color=""></a><span style="color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; --darkreader-inline-color: #84807a;" data-darkreader-inline-color="">接口</span>
<p style="margin: 0px; padding: 0px; color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; --darkreader-inline-color: #84807a;" data-darkreader-inline-color="">定义了Character，Recognizer，Result，Trainer等4个接口类。然后分别使用CharacterImpl, RecognizerImpl, ResultImpl, TrainerImpl实现。</p><a name="WBheader_公用方法_" style="color: rgb(159, 159, 159); text-decoration: underline; font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; --darkreader-inline-color: #78736b;" rel="noopener" data-darkreader-inline-color=""></a><span style="color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; --darkreader-inline-color: #84807a;" data-darkreader-inline-color="">公用方法</span>
<ul style="color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; margin: 0px; padding: 0px; list-style: none; --darkreader-inline-color: #84807a;" data-darkreader-inline-color="">
  <li style="margin: 0; padding: 0">定义了一个模板类 read_static 
用来从一个大数据集合中读取模板类大小的数据，源数据指针根据读取长度自加。和read_ptr的区别是这个是使用memcpy，读取内容到新内存里，内
存的大小即模板类的大小。而read_ptr只是返回指针，并没有指针外的内存占用。</li>

  <li style="margin: 0; padding: 0">定义了一个指针读取类read_ptr用来读取数据指针，源数据指针根据读取长度自加。</li>

  <li style="margin: 0; padding: 0">存储数据普遍使用vector，在每次使用前首先通过resize方法对vector的大小进行重定义。</li>
</ul><a name="WBheader_读取文字模型文件_" style="color: rgb(159, 159, 159); text-decoration: underline; font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; --darkreader-inline-color: #78736b;" rel="noopener" data-darkreader-inline-color=""></a><span style="color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; --darkreader-inline-color: #84807a;" data-darkreader-inline-color="">读取文字模型文件</span>
<ul style="color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; margin: 0px; padding: 0px; list-style: none; --darkreader-inline-color: #84807a;" data-darkreader-inline-color="">
  <li style="margin: 0; padding: 0">文字模型数据采用如下数据结构。</li>
</ul>
<p style="margin: 0px; padding: 0px; color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; --darkreader-inline-color: #84807a;" data-darkreader-inline-color=""></p><span style="color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; --darkreader-inline-color: #84807a;" data-darkreader-inline-color="">struct Model{ const char *character; // utf-8 character float bias; // const FeatureNode *x; //features};</span>
<p style="margin: 0px; padding: 0px; color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; --darkreader-inline-color: #84807a;" data-darkreader-inline-color=""></p>
<ul style="color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; margin: 0px; padding: 0px; list-style: none; --darkreader-inline-color: #84807a;" data-darkreader-inline-color="">
  <li style="margin: 0; padding: 0">使用一个Vector&lt;Model&gt;将所有的模型数据载入。</li>
</ul><a name="WBheader_读取用户输入的手写笔迹_" style="color: rgb(159, 159, 159); text-decoration: underline; font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; --darkreader-inline-color: #78736b;" rel="noopener" data-darkreader-inline-color=""></a><span style="color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; --darkreader-inline-color: #84807a;" data-darkreader-inline-color="">读取用户输入的手写笔迹</span>
<ul style="color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; margin: 0px; padding: 0px; list-style: none; --darkreader-inline-color: #84807a;" data-darkreader-inline-color="">
  <li style="margin: 0; padding: 0">可以自由设置手写框的大小。在内部处理中所有笔迹都被转化为1*1的手写框内的坐标来处理。</li>

  <li style="margin: 0; padding: 0">通过Character类的add方法增加坐标。add的第一个参数为当前笔画，第二个参数为坐标点。通过重复使用add方法可以加入多笔输入笔迹。其中每笔包含多个坐标点数据。</li>
</ul>
<p style="margin: 0px; padding: 0px; color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; --darkreader-inline-color: #84807a;" data-darkreader-inline-color=""><img title="zinnia-3.JPG" alt="zinnia-3.JPG" src="(%E6%89%8B%E5%86%99%E8%AF%86%E5%88%AB)%20Zinnia%E5%BA%93%E5%8F%8A%E5%85%B6%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%B3%95%E7%A0%94%E7%A9%B6%20-%20Flex_AS%20Programmer%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/ab921527675dfd7f8b82a12c.jpg" width="347" height="351" style="border: 0px; margin-bottom: 8px; clear: both; max-width: 758px; vertical-align: top; --darkreader-inline-border-top: currentcolor; --darkreader-inline-border-right: currentcolor; --darkreader-inline-border-bottom: currentcolor; --darkreader-inline-border-left: currentcolor;" data-darkreader-inline-border-top="" data-darkreader-inline-border-right="" data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" class="medium-zoom-image"> 由于作者没有提供界面程序。所以我使用MFC做了一个界面。包括</p>
<ul style="color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; margin: 0px; padding: 0px; list-style: none; --darkreader-inline-color: #84807a;" data-darkreader-inline-color="">
  <li style="margin: 0; padding: 0">笔迹输入区域用于接受笔迹输入。300X300pixel</li>

  <li style="margin: 0; padding: 0">文字显示区域。显示笔迹识别结果</li>

  <li style="margin: 0; padding: 0">辞书切换radiobutton。用来切换日语输入模式和汉语输入模式</li>

  <li style="margin: 0; padding: 0">识别按钮。当前笔迹识别并消除当前笔迹。</li>

  <li style="margin: 0; padding: 0">OK按钮。退出。</li>
</ul><a name="WBheader_笔迹识别feature提取_" style="color: rgb(159, 159, 159); text-decoration: underline; font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; --darkreader-inline-color: #78736b;" rel="noopener" data-darkreader-inline-color=""></a><span style="color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; --darkreader-inline-color: #84807a;" data-darkreader-inline-color="">笔迹识别feature提取</span>
<ul style="color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; margin: 0px; padding: 0px; list-style: none; --darkreader-inline-color: #84807a;" data-darkreader-inline-color="">
  <li style="margin: 0; padding: 0">首先进行坐标转换。即将用户设置的a*b大小的输入框输入的坐标点转化为1*1大小输入框下的坐标点。即坐标x坐标均缩小至1/a，y坐标均缩小至1/b。存储至node链表中。node包含x和y坐标。结构如下</li>
</ul>
<p style="margin: 0px; padding: 0px; color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; --darkreader-inline-color: #84807a;" data-darkreader-inline-color=""></p><span style="color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; --darkreader-inline-color: #84807a;" data-darkreader-inline-color="">struct Node { float x; float y;};</span>
<p style="margin: 0px; padding: 0px; color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; --darkreader-inline-color: #84807a;" data-darkreader-inline-color=""></p>
<p style="margin: 0px; padding: 0px; color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; --darkreader-inline-color: #84807a;" data-darkreader-inline-color=""><img title="zinnia-1.JPG" alt="zinnia-1.JPG" src="(%E6%89%8B%E5%86%99%E8%AF%86%E5%88%AB)%20Zinnia%E5%BA%93%E5%8F%8A%E5%85%B6%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%B3%95%E7%A0%94%E7%A9%B6%20-%20Flex_AS%20Programmer%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/39783a4a44a5909883025c38.jpg" width="182" height="167" style="border: 0px; margin-bottom: 8px; clear: both; max-width: 758px; vertical-align: top; --darkreader-inline-border-top: currentcolor; --darkreader-inline-border-right: currentcolor; --darkreader-inline-border-bottom: currentcolor; --darkreader-inline-border-left: currentcolor;" data-darkreader-inline-border-top="" data-darkreader-inline-border-right="" data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left=""></p>
<ul style="color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; margin: 0px; padding: 0px; list-style: none; --darkreader-inline-color: #84807a;" data-darkreader-inline-color="">
  <li style="margin: 0; padding: 0">然后使用显著点寻找算法。首先从第一笔的笔记数据开始。以起点first和终
点last作为pair[0]的初始值。然后在起点到终点之间的其他点里面寻找一个最显著的点。（作者设定的显著点特征值为0.001。即当
dist^2&gt;0.001的时候此点是显著的）。找到最显著的点best之后，再使用递归的方式，在first和best之间（此时best为当前
轮回的last）以及best和last之间寻找最显著点。最终寻找到所有的最显著点。以“张”字的第一笔为例。起点终点之间的最显著点就是折点。而起点
和折点之间，折点和终点之间没有其他显著点。这样这一笔可以查找出一个显著点。并且生成3个node_pair即 起点-终点 起点-折点 折点-终点</li>
</ul>
<ul style="color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; margin: 0px; padding: 0px; list-style: none; --darkreader-inline-color: #84807a;" data-darkreader-inline-color="">
  <li style="margin: 0; padding: 0">然后针对第一笔的3个node_pair添加feature数据。其中每一对node_pair会被添加12个feature。分别是

    <ul style="margin: 0; padding: 0; list-style: none">
      <li style="margin: 0; padding: 0">起点终点的距离</li>

      <li style="margin: 0; padding: 0">起点终点所成直线的角度</li>

      <li style="margin: 0; padding: 0">起点距离x轴中心线的距离</li>

      <li style="margin: 0; padding: 0">起点距离y轴中心线的距离</li>

      <li style="margin: 0; padding: 0">终点距离x轴中心线的距离</li>

      <li style="margin: 0; padding: 0">终点距离y轴中心线的距离</li>

      <li style="margin: 0; padding: 0">起点和输入框中心点所成直线的角度</li>

      <li style="margin: 0; padding: 0">终点和输入框中心点所成直线的角度</li>

      <li style="margin: 0; padding: 0">起点距离中心点距离</li>

      <li style="margin: 0; padding: 0">终点距离中心点距离</li>

      <li style="margin: 0; padding: 0">起点终点x轴上的投影距离</li>

      <li style="margin: 0; padding: 0">起点终点y轴上的投影距离</li>
    </ul>
  </li>
</ul>
<p style="margin: 0px; padding: 0px; color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; --darkreader-inline-color: #84807a;" data-darkreader-inline-color=""><img title="zinnia-2.JPG" alt="zinnia-2.JPG" src="(%E6%89%8B%E5%86%99%E8%AF%86%E5%88%AB)%20Zinnia%E5%BA%93%E5%8F%8A%E5%85%B6%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%B3%95%E7%A0%94%E7%A9%B6%20-%20Flex_AS%20Programmer%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/45704612e546616a5baf5338.jpg" width="360" height="409" style="border: 0px; margin-bottom: 8px; clear: both; max-width: 758px; vertical-align: top; --darkreader-inline-border-top: currentcolor; --darkreader-inline-border-right: currentcolor; --darkreader-inline-border-bottom: currentcolor; --darkreader-inline-border-left: currentcolor;" data-darkreader-inline-border-top="" data-darkreader-inline-border-right="" data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" class="medium-zoom-image"></p>
<ul style="color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; margin: 0px; padding: 0px; list-style: none; --darkreader-inline-color: #84807a;" data-darkreader-inline-color="">
  <li style="margin: 0; padding: 0">以【串】字为实例。node_pair为17个。如图</li>
</ul>
<ul style="color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; margin: 0px; padding: 0px; list-style: none; --darkreader-inline-color: #84807a;" data-darkreader-inline-color="">
  <li style="margin: 0; padding: 0">其中这些node_pair可以根据feature结构的index属性分类。包括2个类别。

    <ul style="margin: 0; padding: 0; list-style: none">
      <li style="margin: 0; padding: 0">实体笔迹有7笔 （1，345，6，9，111213，15，17）。其中实体笔迹是基于1000*n来定义index的。7笔即在0 – 6*1000 这个范围。</li>

      <li style="margin: 0; padding: 0">非实体笔迹有6笔（2，6，8，10，14，16）就是这些不是实际笔迹输入。只是画完一笔之后的终点和下一笔的起点之间的连线。这类笔迹使用100000+（n+1）*1000来定义index。6笔即在101000-106000这个范围。</li>

      <li style="margin: 0; padding: 0">这样会有17*12 = 204 个feature。然后加上每个字最初的一个和最后的2个feature。一共是207个feature。正是通过这207个feature进行文字的识别，并在文字模型库里面进行匹配。得到前十个最相似的文字。</li>
    </ul>
  </li>
</ul><a name="WBheader_文字匹配_" style="color: rgb(159, 159, 159); text-decoration: underline; font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; --darkreader-inline-color: #78736b;" rel="noopener" data-darkreader-inline-color=""></a><span style="color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; --darkreader-inline-color: #84807a;" data-darkreader-inline-color="">文字匹配</span>
<ul style="color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; margin: 0px; padding: 0px; list-style: none; --darkreader-inline-color: #84807a;" data-darkreader-inline-color="">
  <li style="margin: 0; padding: 0">匹配将对汉字库里面所有文字进行匹配。匹配过程是将【串】字204个
feature与汉字库当前汉字的所有feature进行匹配。当【串】字某一feature的index与汉字库当前汉字的某一feature的
index相同时。即取两个feature值的乘积。如果index不一致则继续下一个链表的结点来比对index。</li>

  <li style="margin: 0; padding: 0">将取得所有乘积相加。最后再加上汉字库当前汉字的固有属性bias。最终形成汉字库当前汉字的最终值。得到所有汉字的最终值之后按从小到大排出前十位即为识别的最终结果。</li>
</ul>
<p style="margin: 0px; padding: 0px; color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; --darkreader-inline-color: #84807a;" data-darkreader-inline-color=""></p><a name="WBheader_学习功能_" style="color: rgb(159, 159, 159); text-decoration: underline; font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; --darkreader-inline-color: #78736b;" rel="noopener" data-darkreader-inline-color=""></a><span style="color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; --darkreader-inline-color: #84807a;" data-darkreader-inline-color="">学习功能</span>
<p style="margin: 0px; padding: 0px; color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; --darkreader-inline-color: #84807a;" data-darkreader-inline-color="">学习功能依靠SVM机实现。还没有来得及分析这部分代码。</p>
<p style="margin: 0px; padding: 0px; color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px; --darkreader-inline-color: #84807a;" data-darkreader-inline-color="">打算专门对SVM做一个研究。</p>

</div>
<div class="clear"></div>
<div id="blog_post_info_block" role="contentinfo">


<div id="BlogPostCategory">
    分类: 
            <a href="https://www.cnblogs.com/yssgyw/category/500421.html" target="_blank">cocos2d-x 2.1</a>
</div>

    <div id="blog_post_info">
<div id="green_channel">
        <a href="javascript:void(0);" id="green_channel_digg" onclick="DiggIt(3456121,cb_blogId,1);green_channel_success(this,'谢谢推荐！');">好文要顶</a>
        <a id="green_channel_follow" onclick="follow('bc1a715b-1a4e-e111-aa3f-842b2b196315');" href="javascript:void(0);">关注我</a>
    <a id="green_channel_favorite" onclick="AddToWz(cb_entryId);return false;" href="javascript:void(0);">收藏该文</a>
    <a id="green_channel_wechat" href="javascript:void(0);" onclick="shareManager.wechatShare()">微信分享</a>
</div>
<div id="author_profile">
    <div id="author_profile_info" class="author_profile_info">
            <a href="https://home.cnblogs.com/u/yssgyw/" target="_blank"><img src="(%E6%89%8B%E5%86%99%E8%AF%86%E5%88%AB)%20Zinnia%E5%BA%93%E5%8F%8A%E5%85%B6%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%B3%95%E7%A0%94%E7%A9%B6%20-%20Flex_AS%20Programmer%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/sample_face.gif" class="author_avatar" alt=""></a>
        <div id="author_profile_detail" class="author_profile_info">
            <a href="https://home.cnblogs.com/u/yssgyw/">Flex/AS Programmer</a>
            <br>
            <a href="https://home.cnblogs.com/u/yssgyw/followers/">粉丝 - <span class="follower-count">3</span></a>
            <a href="https://home.cnblogs.com/u/yssgyw/followees/">关注 - <span class="following-count">1</span></a><br>
        </div>
    </div>
    <div class="clear"></div>
    <div id="author_profile_honor"></div>
    <div id="author_profile_follow" class="follow-tip">
                <a href="javascript:void(0);" onclick="follow('bc1a715b-1a4e-e111-aa3f-842b2b196315');return false;">+加关注</a>
    </div>
</div>
<div id="div_digg">
    <div class="diggit" onclick="votePost(3456121,'Digg')">
        <span class="diggnum" id="digg_count">0</span>
    </div>
    <div class="buryit" onclick="votePost(3456121,'Bury')">
        <span class="burynum" id="bury_count">0</span>
    </div>
    <div class="clear"></div>
    <div class="diggword" id="digg_tips">
    </div>
        <div id="vip_tip"><a class="tip" href="https://cnblogs.vip/" target="_blank">升级成为会员</a></div>
</div>

<script type="text/javascript">
    currentDiggType = 0;
</script>
</div>
    <div class="clear"></div>
    <div id="post_next_prev">

    <a href="https://www.cnblogs.com/yssgyw/p/3456114.html" class="p_n_p_prefix">« </a> 上一篇：    <a href="https://www.cnblogs.com/yssgyw/p/3456114.html" data-featured-image="" title="发布于 2013-12-03 17:10">手势</a>
    <br>
    <a href="https://www.cnblogs.com/yssgyw/p/3456129.html" class="p_n_p_prefix">» </a> 下一篇：    <a href="https://www.cnblogs.com/yssgyw/p/3456129.html" data-featured-image="" title="发布于 2013-12-03 17:12">未命名 6</a>

</div>
</div></div>
	</div>
<script>
    var cb_entryId = 3456121, cb_entryCreatedDate = '2013-12-03 17:11', cb_postType = 1, cb_postTitle = '(手写识别) Zinnia库及其实现方法研究';
    var allowComments = true, cb_blogId = 107735, cb_blogApp = 'yssgyw', cb_blogUserGuid = 'bc1a715b-1a4e-e111-aa3f-842b2b196315';
    mermaidRender.render()
    markdown_highlight()
    zoomManager.apply("#cnblogs_post_body img:not(.code_img_closed):not(.code_img_opened)");    
</script>
<a id="!comments"></a>
<div id="blog-comments-placeholder"></div>
<div id="comment_form" class="commentform">
    <a name="commentform"></a>
    <div id="divCommentShow"></div>
    <div id="comment_nav">
            <a class="comment-nav-left forpc" href="https://cnblogs.vip/" target="_blank">会员力量，点亮园子希望</a>
        <div class="comment-nav-right">
            <span id="span_refresh_tips"></span><a href="#" onclick="return RefreshPage();">刷新页面</a><a href="#top">返回顶部</a>
        </div>
    </div>
    <div id="comment_form_container"><div class="login_tips">
    登录后才能查看或发表评论，立即 <a rel="nofollow" href="javascript:void(0);" class="underline" onclick="return account.login('!comments');">登录</a> 或者
    <a href="https://www.cnblogs.com/">逛逛</a> 博客园首页
</div>
</div>
    <div class="ad_text_commentbox" id="ad_text_under_commentbox"></div>
        <div id="cnblogs_ch"><a href="https://www.cnblogs.com/cmt/p/18298240" target="_blank" onclick="gtag('event', 'click', {'event_category': 'ad', 'event_label': 'T2-vivo-蓝河技术沙龙'})">【推荐】vivo蓝河操作系统技术沙龙招募开启，邀您共探Rust与AI新时代</a><br><a href="https://www.cnblogs.com/cmt/p/18239927" target="_blank" onclick="gtag('event', 'click', {'event_category': 'ad', 'event_label': 'T2-阿里云-通义灵码'})">【推荐】「指间灵动，快码加编」：阿里云通义灵码，再次降临博客园</a><br><a href="http://www.uccpsoft.com/index.htm" target="_blank" onclick="gtag('event', 'click', {'event_category': 'ad', 'event_label': 'T2-UCanCode'})">【推荐】100%开源！大型工业跨平台软件C++源码提供，建模，组态！</a><br><a href="https://www.cnblogs.com/cmt/p/18219378" target="_blank" onclick="gtag('event', 'click', {'event_category': 'ad', 'event_label': 'T2-博客园-T恤'})">【推荐】「废话少说，放码过来」：博客园2024夏季短袖T恤上架啦</a><br><a href="https://cnblogs.vip/buy" target="_blank" onclick="gtag('event', 'click', {'event_category': 'ad', 'event_label': 'T2-博客园-会员'})">【推荐】会员力量，点亮园子希望，期待您升级成为博客园VIP会员</a><br></div>
    <div id="opt_under_post"></div>
        <div id="cnblogs_c1" class="under-post-card">
            <a href="https://www.cnblogs.com/cmt/p/18298240" rel="nofollow" target="_blank" onclick="countCreativeClicks('C1-vivo-蓝河技术沙龙')">
                <img src="(%E6%89%8B%E5%86%99%E8%AF%86%E5%88%AB)%20Zinnia%E5%BA%93%E5%8F%8A%E5%85%B6%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%B3%95%E7%A0%94%E7%A9%B6%20-%20Flex_AS%20Programmer%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/35695-20240713070336838-1837943664.jpg" onload="countCreativeImpressions('C1-vivo-蓝河技术沙龙')" alt="">
                <span id="c1_impression" style="display:none"></span>
            </a>
        </div>
    <div id="under_post_card1"><div class="under-post-card">
<b>编辑推荐：</b>
<br>

· <a href="https://www.cnblogs.com/thisiswhy/p/18302939" target="_blank">线程池遇到父子任务，有大坑，要注意</a>
    <br>
· <a href="https://www.cnblogs.com/ggtc/p/18297137" target="_blank">记录荒废了三年的四年 .net 开发的第一次面试</a>
    <br>
· <a href="https://www.cnblogs.com/enjoyall/p/18295008" target="_blank">记录一次排查解决服务器卡死的过程</a>
    <br>
· <a href="https://www.cnblogs.com/crossoverJie/p/18297726" target="_blank">我是如何从零到成为 Apache 顶级项目的 Committer</a>
    <br>
· <a href="https://www.cnblogs.com/beckyyyy/p/18293794" target="_blank">可视化学习：如何用 WebGL 绘制 3D 物体</a>
    <br>
</div></div>
    <div id="under_post_card2"><div class="itnews under-post-card">
    <b>阅读排行：</b>
    <br>
 ·          <a href="https://www.cnblogs.com/cmt/p/18302049" target="_blank">求救信：救下园子，保住这块开发者的天地</a>
        <br>
 ·          <a href="https://www.cnblogs.com/Can-daydayup/p/18302180" target="_blank">使用ML.NET训练一个属于自己的图像分类模型，对图像进行分类就这么简单！</a>
        <br>
 ·          <a href="https://www.cnblogs.com/wlovet/p/18303453" target="_blank">我不应该用JWT的！</a>
        <br>
 ·          <a href="https://www.cnblogs.com/thisiswhy/p/18302939" target="_blank">线程池遇到父子任务，有大坑，要注意！</a>
        <br>
 ·          <a href="https://www.cnblogs.com/heavenYJJ/p/18301249" target="_blank">想看源码但是无从下口怎么办？</a>
        <br>
</div></div>
    <div id="HistoryToday" class="under-post-card"></div>
    <script type="text/javascript">
        var commentManager = new blogCommentManager();
        commentManager.renderComments(0);
        fixPostBody();
        window.footnoteTipManager.generateFootnoteTips();

            window.tocManager.displayDisableTocTips = false;
            window.tocManager.generateToc();
            
                setTimeout(function() { countViews(cb_blogId, cb_entryId); }, 50);
            
            deliverT2();
            deliverC1C2();
            loadNewsAndKb();
            
                LoadPostCategoriesTags(cb_blogId, cb_entryId);
            
            LoadPostInfoBlock(cb_blogId, cb_entryId, cb_blogApp, cb_blogUserGuid);
            GetPrevNextPost(cb_entryId, cb_blogId, cb_entryCreatedDate, cb_postType);
            loadOptUnderPost();
            GetHistoryToday(cb_blogId, cb_blogApp, cb_entryCreatedDate);
                </script>
</div>

</div>

</div>
    </div>
	<!-- Footer -->
	<div id="info-site">
	<p id="info-company"></p><div id="blog_stats_place_holder"><script>loadBlogStats();</script></div><p></p>
	<p id="info-standards">Copyright © 2024 Flex/AS Programmer
<br><span id="poweredby">Powered by .NET 8.0 on Kubernetes</span>
</p>
</div>

</div>



    

    <input type="hidden" id="antiforgery_token" value="CfDJ8ONv0caE5GtEh3YJ5j088kkj5wWFaiSJv_c88xYTO9yrVPyeijMXygjB2dd69MLKPgLUFPl1xECNxZJbJH3bY0Na4dXVYXHCjK-02nwWpYbq24qqoRNb4NHVbWdCrZQf3zWnV_LVlVCfyRDWInuJU8s">
    <script async="" src="(%E6%89%8B%E5%86%99%E8%AF%86%E5%88%AB)%20Zinnia%E5%BA%93%E5%8F%8A%E5%85%B6%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%B3%95%E7%A0%94%E7%A9%B6%20-%20Flex_AS%20Programmer%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/js"></script>
<script>
    window.dataLayer = window.dataLayer || [];
    function gtag() { dataLayer.push(arguments); }
    gtag('js', new Date());
    gtag('config', 'G-M95P3TTWJZ');
</script>
<script defer="defer" src="(%E6%89%8B%E5%86%99%E8%AF%86%E5%88%AB)%20Zinnia%E5%BA%93%E5%8F%8A%E5%85%B6%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%B3%95%E7%A0%94%E7%A9%B6%20-%20Flex_AS%20Programmer%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/hm.js"></script>


<div style="z-index: 998; position: fixed; top: 0px; left: 0px; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.6); display: none; flex-direction: column; align-items: center; justify-content: center; --darkreader-inline-bgcolor: rgba(0, 0, 0, 0.6); --darkreader-inline-bgimage: none;" data-darkreader-inline-bgcolor="" data-darkreader-inline-bgimage="">
<div style="background: rgb(255, 255, 255); padding: 30px; margin: 30px; border-radius: 16px; --darkreader-inline-bgcolor: #111213; --darkreader-inline-bgimage: none;" data-darkreader-inline-bgcolor="" data-darkreader-inline-bgimage="">
  <div style="width: 200px; height: 200px; background: rgba(255, 255, 255, 0.8); position: absolute; top: -100px; right: -100px; border-radius: 100px; --darkreader-inline-bgcolor: rgba(17, 18, 19, 0.8); --darkreader-inline-bgimage: none;" data-darkreader-inline-bgcolor="" data-darkreader-inline-bgimage=""></div>
  <div style="text-align: center; font-size: 18px; margin-bottom: 10px;">点击右上角即可分享</div>
  <img src="(%E6%89%8B%E5%86%99%E8%AF%86%E5%88%AB)%20Zinnia%E5%BA%93%E5%8F%8A%E5%85%B6%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%B3%95%E7%A0%94%E7%A9%B6%20-%20Flex_AS%20Programmer%20-%20%E5%8D%9A%E5%AE%A2%E5%9B%AD_files/35695-20230906145857937-1471873834.gif" alt="微信分享提示">
</div>   
    </div></body></html>